package com.bz.match;

/**
 * @author zhongyongbin
 * @since 2021/5/17
 */
public interface MatchStrategy {

    /**
     * 匹配
     *
     * @param gameId 游戏标识
     * @param playerCount 玩家数量
     * @return 匹配结果
     */
    MatchResult match(int gameId, int playerCount);

    /**
     * 进入游戏等待房间
     * @param gameId 游戏标识
     * @param userId 用户 ID
     * @return true 为成功进入游戏等待房间； false 为已经在该游戏等待房间中，进入失败。
     */
    boolean joinWaitRoom(int gameId, long userId);

    /**
     * 离开等待房间
     *
     * @param gameId 游戏 ID
     * @param userId 用户 ID
     * @return true 为成功离开； false 为没有在游戏等待房间中，离开失败
     */
    boolean leaveWaitRoom(int gameId, long userId);
}
